<h1>SCHEMAS DOCUMENTATION </br>Version: 1.18.10.4</h1>
<h2><p id="Index">Index</p></h2>
<table border="1">
<tr> <th><a href="#Overview">Overview</a></th> </tr>
<tr> <th><a href="#Schemas">Schemas</a></th> </tr>
</table>
<a href="#Index">返回顶部</a>
<h1><p id="Overview">Overview</p></h1>

These are the data format schemas for content creators to reference when editing or creating new content.</br><a href="#Index">返回顶部</a><br><br>

<h1><p id="Schemas">Schemas</p></h1>

```</br>--------</br>item_event_responses:1.16.100:</br>----------</br>actor_animation:1.8.0:{</br>    version "format_version"</br>    object "animations"</br>    {</br>        object "animation.<identifier>"</br>        {</br>            bool "loop" : opt // should this animation stop, loop, or stay on the last frame when finished (true, false, "hold_on_last_frame"</br>            string "loop"<"hold_on_last_frame"> : opt // should this animation stop, loop, or stay on the last frame when finished (true, false, "hold_on_last_frame"</br>            molang "start_delay" : opt // How long to wait in seconds before playing this animation.  Note that this expression is evaluated once before playing, and only re-evaluated if asked to play from the beginning again.  A looping animation should use 'loop_delay' if it wants a delay between loops.</br>            molang "loop_delay" : opt // How long to wait in seconds before looping this animation.  Note that this expression is evaluated after each loop and on looping animation only.</br>            molang "anim_time_update" : opt // how does time pass when playing the animation.  Defaults to "query.anim_time + query.delta_time" which means advance in seconds.</br>            molang "blend_weight" : opt</br>            bool "override_previous_animation" : opt // reset bones in this animation to the default pose before applying this animation</br>            object "bones" : opt</br>            {</br>                object "<identifier>"</br>                {</br>                    object "relative_to" : opt</br>                    {</br>                        string "rotation"<"entity"> : opt // if set, makes the bone rotation relative to the entity instead of the bone's parent</br>                    }</br>                    molang "position" : opt</br>                    array "position" : opt</br>                    {</br>                        molang "<any array element>"</br>                    }</br>                    object "position" : opt</br>                    {</br>                        array "<time_stamp>"[3]</br>                        {</br>                            molang "<any array element>"</br>                        }</br>                        object "<time_stamp>"</br>                        {</br>                            enumerated_value "lerp_mode"<"linear", "catmullrom"> : opt</br>                            array "pre"[3] : opt</br>                            {</br>                                molang "<any array element>"</br>                            }</br>                            array "post"[3] : opt</br>                            {</br>                                molang "<any array element>"</br>                            }</br>                        }</br>                    }</br>                    molang "rotation" : opt</br>                    array "rotation" : opt</br>                    {</br>                        molang "<any array element>"</br>                        object "<any array element>"</br>                        {</br>                            molang "[xyz]"</br>                        }</br>                    }</br>                    object "rotation" : opt</br>                    {</br>                        array "<time_stamp>"[3]</br>                        {</br>                            molang "<any array element>"</br>                        }</br>                        object "<time_stamp>"</br>                        {</br>                            enumerated_value "lerp_mode"<"linear", "catmullrom"> : opt</br>                            array "pre"[3] : opt</br>                            {</br>                                molang "<any array element>"</br>                            }</br>                            array "post"[3] : opt</br>                            {</br>                                molang "<any array element>"</br>                            }</br>                        }</br>                    }</br>                    molang "scale" : opt</br>                    array "scale" : opt</br>                    {</br>                        molang "<any array element>"</br>                    }</br>                    object "scale" : opt</br>                    {</br>                        array "<time_stamp>"[3]</br>                        {</br>                            molang "<any array element>"</br>                        }</br>                        object "<time_stamp>"</br>                        {</br>                            enumerated_value "lerp_mode"<"linear", "catmullrom"> : opt</br>                            array "pre"[3] : opt</br>                            {</br>                                molang "<any array element>"</br>                            }</br>                            array "post"[3] : opt</br>                            {</br>                                molang "<any array element>"</br>                            }</br>                        }</br>                    }</br>                }</br>            }</br>            object "particle_effects" : opt</br>            {</br>                object "<time_stamp>" : opt</br>                {</br>                    string "effect" // The name of a particle effect that should be played</br>                    string "locator" : opt // The name of a locator on the actor where the effect should be located</br>                    molang "pre_effect_script" : opt // A Molang script that will be run when the particle emitter is initialized</br>                    bool "bind_to_actor" : opt // Set to false to have the effect spawned in the world without being bound to an actor (by default an effect is bound to the actor).</br>                }</br>                array "<time_stamp>" : opt</br>                {</br>                    object "<any array element>" : opt</br>                    {</br>                        string "effect" // The name of a particle effect that should be played</br>                        string "locator" : opt // The name of a locator on the actor where the effect should be located</br>                        molang "pre_effect_script" : opt // A Molang script that will be run when the particle emitter is initialized</br>                        bool "bind_to_actor" : opt // Set to false to have the effect spawned in the world without being bound to an actor (by default an effect is bound to the actor).</br>                    }</br>                }</br>            }</br>            object "sound_effects" : opt // sound effects to trigger as this animation plays, keyed by time</br>            {</br>                object "<time_stamp>" : opt</br>                {</br>                    string "effect" // Valid sound effect names should be listed in the entity's resource_definition json file.</br>                }</br>                array "<time_stamp>" : opt</br>                {</br>                    object "<any array element>" : opt</br>                    {</br>                        string "effect" // Valid sound effect names should be listed in the entity's resource_definition json file.</br>                    }</br>                }</br>            }</br>            object "timeline" : opt</br>            {</br>                string "<time_stamp>" : opt</br>                array "<time_stamp>" : opt</br>                {</br>                    string "<any array element>" : opt</br>                }</br>            }</br>            float "animation_length" : opt // override calculated value (set as the max keyframe or event time) and set animation length in seconds.</br>        }</br>    }</br>}</br></br>----------</br>actor_animation_controller:1.10.0:{</br>    version "format_version"</br>    object "animation_controllers"</br>    {</br>        object "controller.animation.<identifier>"</br>        {</br>            object "states"</br>            {</br>                object "<identifier>"</br>                {</br>                    object "variables" : opt</br>                    {</br>                        object "<identifier>"</br>                        {</br>                            molang "input"</br>                            object "remap_curve" : opt</br>                            {</br>                                float "<time_stamp>"</br>                            }</br>                        }</br>                    }</br>                    array "animations" : opt</br>                    {</br>                        string "<any array element>"</br>                        object "<any array element>"</br>                        {</br>                            molang "<identifier>"</br>                        }</br>                    }</br>                    array "transitions" : opt</br>                    {</br>                        object "<any array element>"[1] : opt</br>                        {</br>                            string "<identifier>"</br>                        }</br>                    }</br>                    bool "blend_via_shortest_path" : opt // When blending a transition to another state, animate each euler axis through the shortest rotation, instead of by value</br>                    object "blend_transition" : opt // Specifies the cross-fade time in seconds when transitioning to another state</br>                    {</br>                        float "<identifier>" // Mapping of time since the animation was canceled, to the blend value at that time.  A default key of time=0 to a blend value of 1.0 is provided if any other key is set and a blend value at time=0 hasn't already been set.</br>                    }</br>                    float "blend_transition" : opt // A short-hand version of blend_out that simply sets the amount of time to fade out if the animation is interrupted</br>                    array "particle_effects" : opt</br>                    {</br>                        object "<any array element>" : opt</br>                        {</br>                            string "effect" // The name of a particle effect that should be played</br>                            string "locator" : opt // The name of a locator on the actor where the effect should be located</br>                            molang "pre_effect_script" : opt // A Molang script that will be run when the particle emitter is initialized</br>                            bool "bind_to_actor" : opt // Set to false to have the effect spawned in the world without being bound to an actor (by default an effect is bound to the actor).</br>                        }</br>                    }</br>                    array "on_entry" : opt</br>                    {</br>                        string "<any array element>" : opt</br>                    }</br>                    array "on_exit" : opt</br>                    {</br>                        string "<any array element>" : opt</br>                    }</br>                    array "sound_effects" : opt // Collection of sounds to trigger on entry to this animation state.</br>                    {</br>                        object "<any array element>" : opt</br>                        {</br>                            string "effect" // Valid sound effect names should be listed in the entity's resource_definition json file.</br>                        }</br>                    }</br>                }</br>            }</br>            string "initial_state" : opt</br>        }</br>    }</br>}</br></br>----------</br>chance_information:1.14.0:{</br>    int "numerator"<1-*></br>    int "denominator"<1-*></br>}</br></br>----------</br>block_reference:1.10.0:{</br>    string "name"</br>    object "states"</br>    {</br>        bool "\w*:?\w+" : opt</br>        int "\w*:?\w+" : opt</br>        string "\w*:?\w+" : opt</br>    }</br>}</br></br>----------</br>persona_actor_animation:1.8.0:{</br>    version "format_version"</br>    object "animations"</br>    {</br>        object "animation.<identifier>"</br>        {</br>            bool "loop" : opt // should this animation stop, loop, or stay on the last frame when finished (true, false, "hold_on_last_frame"</br>            string "loop"<"hold_on_last_frame"> : opt // should this animation stop, loop, or stay on the last frame when finished (true, false, "hold_on_last_frame"</br>            molang "start_delay" : opt // How long to wait in seconds before playing this animation.  Note that this expression is evaluated once before playing, and only re-evaluated if asked to play from the beginning again.  A looping animation should use 'loop_delay' if it wants a delay between loops.</br>            molang "loop_delay" : opt // How long to wait in seconds before looping this animation.  Note that this expression is evaluated after each loop and on looping animation only.</br>            molang "anim_time_update" : opt // how does time pass when playing the animation.  Defaults to "query.anim_time + query.delta_time" which means advance in seconds.</br>            molang "blend_weight" : opt</br>            bool "override_previous_animation" : opt // reset bones in this animation to the default pose before applying this animation</br>            object "bones" : opt</br>            {</br>                object "<identifier>"</br>                {</br>                    object "relative_to" : opt</br>                    {</br>                        string "rotation"<"entity"> : opt // if set, makes the bone rotation relative to the entity instead of the bone's parent</br>                    }</br>                    molang "position" : opt</br>                    array "position" : opt</br>                    {</br>                        molang "<any array element>"</br>                    }</br>                    object "position" : opt</br>                    {</br>                        array "<time_stamp>"[3]</br>                        {</br>                            molang "<any array element>"</br>                        }</br>                        object "<time_stamp>"</br>                        {</br>                            enumerated_value "lerp_mode"<"linear", "catmullrom"> : opt</br>                            array "pre"[3] : opt</br>                            {</br>                                molang "<any array element>"</br>                            }</br>                            array "post"[3] : opt</br>                            {</br>                                molang "<any array element>"</br>                            }</br>                        }</br>                    }</br>                    molang "rotation" : opt</br>                    array "rotation" : opt</br>                    {</br>                        molang "<any array element>"</br>                        object "<any array element>"</br>                        {</br>                            molang "[xyz]"</br>                        }</br>                    }</br>                    object "rotation" : opt</br>                    {</br>                        array "<time_stamp>"[3]</br>                        {</br>                            molang "<any array element>"</br>                        }</br>                        object "<time_stamp>"</br>                        {</br>                            enumerated_value "lerp_mode"<"linear", "catmullrom"> : opt</br>                            array "pre"[3] : opt</br>                            {</br>                                molang "<any array element>"</br>                            }</br>                            array "post"[3] : opt</br>                            {</br>                                molang "<any array element>"</br>                            }</br>                        }</br>                    }</br>                    molang "scale" : opt</br>                    array "scale" : opt</br>                    {</br>                        molang "<any array element>"</br>                    }</br>                    object "scale" : opt</br>                    {</br>                        array "<time_stamp>"[3]</br>                        {</br>                            molang "<any array element>"</br>                        }</br>                        object "<time_stamp>"</br>                        {</br>                            enumerated_value "lerp_mode"<"linear", "catmullrom"> : opt</br>                            array "pre"[3] : opt</br>                            {</br>                                molang "<any array element>"</br>                            }</br>                            array "post"[3] : opt</br>                            {</br>                                molang "<any array element>"</br>                            }</br>                        }</br>                    }</br>                }</br>            }</br>            object "particle_effects" : opt</br>            {</br>                object "<time_stamp>" : opt</br>                {</br>                    string "effect" // The name of a particle effect that should be played</br>                    string "locator" : opt // The name of a locator on the actor where the effect should be located</br>                    molang "pre_effect_script" : opt // A Molang script that will be run when the particle emitter is initialized</br>                    bool "bind_to_actor" : opt // Set to false to have the effect spawned in the world without being bound to an actor (by default an effect is bound to the actor).</br>                }</br>                array "<time_stamp>" : opt</br>                {</br>                    object "<any array element>" : opt</br>                    {</br>                        string "effect" // The name of a particle effect that should be played</br>                        string "locator" : opt // The name of a locator on the actor where the effect should be located</br>                        molang "pre_effect_script" : opt // A Molang script that will be run when the particle emitter is initialized</br>                        bool "bind_to_actor" : opt // Set to false to have the effect spawned in the world without being bound to an actor (by default an effect is bound to the actor).</br>                    }</br>                }</br>            }</br>            object "sound_effects" : opt // sound effects to trigger as this animation plays, keyed by time</br>            {</br>                object "<time_stamp>" : opt</br>                {</br>                    string "effect" // Valid sound effect names should be listed in the entity's resource_definition json file.</br>                }</br>                array "<time_stamp>" : opt</br>                {</br>                    object "<any array element>" : opt</br>                    {</br>                        string "effect" // Valid sound effect names should be listed in the entity's resource_definition json file.</br>                    }</br>                }</br>            }</br>            object "timeline" : opt</br>            {</br>                string "<time_stamp>" : opt</br>                array "<time_stamp>" : opt</br>                {</br>                    string "<any array element>" : opt</br>                }</br>            }</br>            float "animation_length" : opt // override calculated value (set as the max keyframe or event time) and set animation length in seconds.</br>        }</br>    }</br>}</br></br>----------</br>actor_resource_definition:1.8.0:{</br>    version "format_version"</br>    object "minecraft:(client_entity|attachable)"</br>    {</br>        object "description"</br>        {</br>            string "identifier"</br>            version "min_engine_version" : opt</br>            object "materials" : opt</br>            {</br>                string "<identifier>"</br>            }</br>            object "textures" : opt</br>            {</br>                string "<identifier>"</br>            }</br>            object "geometry" : opt</br>            {</br>                string "<identifier>"</br>            }</br>            object "spawn_egg" : opt</br>            {</br>                string "texture" : opt</br>                string "base_color" : opt</br>                string "overlay_color" : opt</br>                int "texture_index" : opt</br>            }</br>            object "scripts" : opt</br>            {</br>                array "pre_animation" : opt</br>                {</br>                    molang "<any array element>"</br>                }</br>                molang "scale" : opt</br>                molang "scale[xX]" : opt</br>                molang "scale[yY]" : opt</br>                molang "scale[zZ]" : opt</br>                molang "parent_setup" : opt</br>            }</br>            object "particle_effects"[1,*] : opt</br>            {</br>                string "<identifier>" : opt</br>            }</br>            object "particle_emitters"[1,*] : opt</br>            {</br>                string "<identifier>" : opt</br>            }</br>            object "animations"[1,*] : opt</br>            {</br>                string "<identifier>" : opt</br>            }</br>            array "animation_controllers"[1,*] : opt</br>            {</br>                object "<any array element>" : opt</br>                {</br>                    string "<identifier>" : opt</br>                }</br>            }</br>            array "render_controllers"[1,*] : opt</br>            {</br>                string "<any array element>" : opt</br>            }</br>            object "sound_effects"[1,*] : opt</br>            {</br>                string "<identifier>" : opt</br>            }</br>            bool "enable_attachables" : opt</br>            bool "hide_armor" : opt</br>        }</br>    }</br>}</br></br>----------</br>actor_resource_definition:1.10.0:{</br>    version "format_version"</br>    object "minecraft:client_entity" : opt</br>    {</br>        object "description"</br>        {</br>            string "identifier"</br>            version "min_engine_version" : opt</br>            object "materials" : opt</br>            {</br>                string "<identifier>"</br>            }</br>            object "textures" : opt</br>            {</br>                string "<identifier>"</br>            }</br>            object "geometry" : opt</br>            {</br>                string "<identifier>"</br>            }</br>            string "queryable_geometry" : opt</br>            object "spawn_egg" : opt</br>            {</br>                string "texture" : opt</br>                string "base_color" : opt</br>                string "overlay_color" : opt</br>                int "texture_index" : opt</br>            }</br>            object "scripts" : opt</br>            {</br>                object "variables" : opt // A list of variables that need certain settings applied to them.  Currently, for the client, only "public" is supported.</br>                {</br>                    string "variable.[a-zA-Z_][a-zA-Z0-9_]*"<"public"> // If a variable is public, it can be read by other mobs.  See the molang '->' operator for details.</br>                }</br>                array "initialize" : opt</br>                {</br>                    molang "<any array element>"</br>                }</br>                array "pre_animation" : opt</br>                {</br>                    molang "<any array element>"</br>                }</br>                molang "scale" : opt</br>                molang "scale[xX]" : opt</br>                molang "scale[yY]" : opt</br>                molang "scale[zZ]" : opt</br>                molang "parent_setup" : opt</br>                array "animate"[1,*] : opt</br>                {</br>                    string "<any array element>" : opt</br>                    object "<any array element>"[1] : opt</br>                    {</br>                        molang "<scope_identifier>" : opt</br>                    }</br>                }</br>                molang "should_update_bones_and_effects_offscreen" : opt // Bones and effects will still be updated if the entity is off screen if this expression returns anything other than 0.0.</br>                molang "should_update_effects_offscreen" : opt // Effects will still be updated if the entity is off screen if this expression or `should_update_bones_and_effects_offscreen` returns anything other than 0.0.</br>            }</br>            object "particle_effects"[1,*] : opt</br>            {</br>                string "<identifier>" : opt</br>            }</br>            object "particle_emitters"[1,*] : opt</br>            {</br>                string "<identifier>" : opt</br>            }</br>            object "animations"[1,*] : opt</br>            {</br>                string "<identifier>" : opt</br>            }</br>            array "render_controllers"[1,*] : opt</br>            {</br>                string "<any array element>" : opt</br>                object "<any array element>"[1] : opt</br>                {</br>                    molang "<scope_identifier>" : opt</br>                }</br>            }</br>            object "sound_effects"[1,*] : opt</br>            {</br>                string "<identifier>" : opt</br>            }</br>            bool "enable_attachables" : opt</br>            bool "hide_armor" : opt</br>        }</br>    }</br>    object "minecraft:attachable" : opt</br>    {</br>        object "description"</br>        {</br>            string "identifier"</br>            version "min_engine_version" : opt</br>            object "materials" : opt</br>            {</br>                string "<identifier>"</br>            }</br>            object "textures" : opt</br>            {</br>                string "<identifier>"</br>            }</br>            object "geometry" : opt</br>            {</br>                string "<identifier>"</br>            }</br>            string "queryable_geometry" : opt</br>            object "spawn_egg" : opt</br>            {</br>                string "texture" : opt</br>                string "base_color" : opt</br>                string "overlay_color" : opt</br>                int "texture_index" : opt</br>            }</br>            object "scripts" : opt</br>            {</br>                object "variables" : opt // A list of variables that need certain settings applied to them.  Currently, for the client, only "public" is supported.</br>                {</br>                    string "variable.[a-zA-Z_][a-zA-Z0-9_]*"<"public"> // If a variable is public, it can be read by other mobs.  See the molang '->' operator for details.</br>                }</br>                array "initialize" : opt</br>                {</br>                    molang "<any array element>"</br>                }</br>                array "pre_animation" : opt</br>                {</br>                    molang "<any array element>"</br>                }</br>                molang "scale" : opt</br>                molang "scale[xX]" : opt</br>                molang "scale[yY]" : opt</br>                molang "scale[zZ]" : opt</br>                molang "parent_setup" : opt</br>                array "animate"[1,*] : opt</br>                {</br>                    string "<any array element>" : opt</br>                    object "<any array element>"[1] : opt</br>                    {</br>                        molang "<scope_identifier>" : opt</br>                    }</br>                }</br>                molang "should_update_bones_and_effects_offscreen" : opt // Bones and effects will still be updated if the entity is off screen if this expression returns anything other than 0.0.</br>                molang "should_update_effects_offscreen" : opt // Effects will still be updated if the entity is off screen if this expression or `should_update_bones_and_effects_offscreen` returns anything other than 0.0.</br>            }</br>            object "particle_effects"[1,*] : opt</br>            {</br>                string "<identifier>" : opt</br>            }</br>            object "particle_emitters"[1,*] : opt</br>            {</br>                string "<identifier>" : opt</br>            }</br>            object "animations"[1,*] : opt</br>            {</br>                string "<identifier>" : opt</br>            }</br>            array "render_controllers"[1,*] : opt</br>            {</br>                string "<any array element>" : opt</br>                object "<any array element>"[1] : opt</br>                {</br>                    molang "<scope_identifier>" : opt</br>                }</br>            }</br>            object "sound_effects"[1,*] : opt</br>            {</br>                string "<identifier>" : opt</br>            }</br>            bool "enable_attachables" : opt</br>            bool "hide_armor" : opt</br>            string "item" : opt</br>            object "item"[1] : opt</br>            {</br>                molang "<scope_identifier>"</br>            }</br>        }</br>    }</br>}</br></br>----------</br>render_controller:1.8.0:{</br>    version "format_version"</br>    object "render_controllers"</br>    {</br>        object "controller.render.<scope_identifier>"</br>        {</br>            bool "rebuild_animation_matrices" : opt</br>            object "arrays" : opt</br>            {</br>                object "geometries" : opt</br>                {</br>                    array "array.<scope_identifier>"</br>                    {</br>                        string "<any array element>"</br>                    }</br>                }</br>                object "materials" : opt</br>                {</br>                    array "array.<scope_identifier>"</br>                    {</br>                        string "<any array element>"</br>                    }</br>                }</br>                object "textures" : opt</br>                {</br>                    array "array.<scope_identifier>"</br>                    {</br>                        string "<any array element>"</br>                    }</br>                }</br>            }</br>            string "geometry"</br>            array "part_visibility" : opt</br>            {</br>                object "<any array element>"</br>                {</br>                    molang "[a-zA-Z0-9_.:*]+"</br>                }</br>            }</br>            array "materials" : opt</br>            {</br>                object "<any array element>"</br>                {</br>                    molang "[a-zA-Z0-9_.:*]+"</br>                }</br>            }</br>            array "textures" : opt</br>            {</br>                string "<any array element>"</br>            }</br>            object "color" : opt</br>            {</br>                molang "r" : opt</br>                molang "g" : opt</br>                molang "b" : opt</br>                molang "a" : opt</br>            }</br>            object "overlay_color" : opt</br>            {</br>                molang "r" : opt</br>                molang "g" : opt</br>                molang "b" : opt</br>                molang "a" : opt</br>            }</br>            object "on_fire_color" : opt</br>            {</br>                molang "r" : opt</br>                molang "g" : opt</br>                molang "b" : opt</br>                molang "a" : opt</br>            }</br>            object "is_hurt_color" : opt</br>            {</br>                molang "r" : opt</br>                molang "g" : opt</br>                molang "b" : opt</br>                molang "a" : opt</br>            }</br>            object "uv_anim" : opt</br>            {</br>                array "offset"[2]</br>                {</br>                    molang "<any array element>"</br>                }</br>                array "scale"[2]</br>                {</br>                    molang "<any array element>"</br>                }</br>            }</br>            molang "light_color_multiplier" : opt</br>            bool "ignore_lighting" : opt</br>            bool "filter_lighting" : opt</br>        }</br>    }</br>}</br></br>----------</br>geometry:1.8.0:{</br>    bool "debug" : opt</br>    version "format_version"</br>    object "geometry.[a-zA-Z0-9_.'-:]+"</br>    {</br>        bool "debug" : opt</br>        float "visible_bounds_width" : opt</br>        float "visible_bounds_height" : opt</br>        array "visible_bounds_offset"[3] : opt</br>        {</br>            float "<any array element>"</br>        }</br>        int "texturewidth" : opt</br>        int "textureheight" : opt</br>        string "cape" : opt</br>        array "bones" : opt</br>        {</br>            object "<any array element>" : opt</br>            {</br>                string "name"</br>                bool "reset" : opt</br>                bool "neverRender" : opt</br>                string "parent" : opt</br>                array "pivot"[3] : opt</br>                {</br>                    float "<any array element>"</br>                }</br>                array "rotation"[3] : opt</br>                {</br>                    float "<any array element>"</br>                }</br>                array "bind_pose_rotation"[3] : opt</br>                {</br>                    float "<any array element>" : opt</br>                }</br>                bool "mirror" : opt</br>                float "inflate" : opt</br>                bool "debug" : opt</br>                int "render_group_id"<0-*> : opt</br>                array "cubes" : opt</br>                {</br>                    object "<any array element>" : opt</br>                    {</br>                        array "origin"[3] : opt</br>                        {</br>                            float "<any array element>"</br>                        }</br>                        array "size"[3] : opt</br>                        {</br>                            float "<any array element>"</br>                        }</br>                        array "uv"[2] : opt</br>                        {</br>                            float "<any array element>"</br>                        }</br>                        float "inflate" : opt</br>                        bool "mirror" : opt</br>                    }</br>                }</br>                object "locators" : opt</br>                {</br>                    array "<identifier>" : opt</br>                    {</br>                        float "<any array element>" : opt</br>                    }</br>                }</br>                object "poly_mesh" : opt</br>                {</br>                    bool "normalized_uvs" : opt</br>                    array "positions" : opt</br>                    {</br>                        array "<any array element>"[3] : opt</br>                        {</br>                            float "<any array element>"</br>                        }</br>                    }</br>                    array "normals" : opt</br>                    {</br>                        array "<any array element>"[3] : opt</br>                        {</br>                            float "<any array element>"</br>                        }</br>                    }</br>                    array "uvs" : opt</br>                    {</br>                        array "<any array element>"[2] : opt</br>                        {</br>                            float "<any array element>"</br>                        }</br>                    }</br>                    array "polys"</br>                    {</br>                        array "<any array element>"[3,4] : opt</br>                        {</br>                            array "<any array element>"[3]</br>                            {</br>                                float "<any array element>"</br>                            }</br>                        }</br>                    }</br>                    string "polys"<"tri_list", "quad_list"></br>                }</br>                array "texture_meshes" : opt</br>                {</br>                    object "<any array element>"</br>                    {</br>                        string "texture"</br>                        array "position"[3] : opt</br>                        {</br>                            float "<any array element>"</br>                        }</br>                        array "local_pivot"[3] : opt</br>                        {</br>                            float "<any array element>"</br>                        }</br>                        array "rotation"[3] : opt</br>                        {</br>                            float "<any array element>"</br>                        }</br>                        array "scale"[3] : opt</br>                        {</br>                            float "<any array element>"</br>                        }</br>                    }</br>                }</br>            }</br>        }</br>    }</br>}</br></br>----------</br>geometry:1.12.0:{</br>    bool "debug" : opt</br>    version "format_version"</br>    array "minecraft:geometry"[1,*]</br>    {</br>        object "<any array element>"</br>        {</br>            object "description"</br>            {</br>                string "identifier" // Entity definition and Client Block definition files refer to this geometry via this identifier.</br>                float "visible_bounds_width" : opt // Width of the visibility bounding box (in model space units).</br>                float "visible_bounds_height" : opt // Height of the visible bounding box (in model space units).</br>                array "visible_bounds_offset"[3] : opt</br>                {</br>                    float "<any array element>" // Offset of the visibility bounding box from the entity location point (in model space units).</br>                }</br>                int "texture_width" : opt // Assumed width in texels of the texture that will be bound to this geometry.</br>                int "texture_height" : opt // Assumed height in texels of the texture that will be bound to this geometry.</br>            }</br>            string "cape" : opt</br>            array "bones" : opt // Bones define the 'skeleton' of the mob: the parts that can be animated, and to which geometry and other bones are attached.</br>            {</br>                object "<any array element>" : opt</br>                {</br>                    string "name" // Animation files refer to this bone via this identifier.</br>                    string "parent" : opt // Bone that this bone is relative to.  If the parent bone moves, this bone will move along with it.</br>                    array "pivot"[3] : opt</br>                    {</br>                        float "<any array element>" // The bone pivots around this point (in model space units).</br>                    }</br>                    array "rotation"[3] : opt</br>                    {</br>                        float "<any array element>" // This is the initial rotation of the bone around the pivot, pre-animation (in degrees, x-then-y-then-z order).</br>                    }</br>                    bool "mirror" : opt // Mirrors the UV's of the unrotated cubes along the x axis, also causes the east/west faces to get flipped.</br>                    float "inflate" : opt // Grow this box by this additive amount in all directions (in model space units).</br>                    bool "debug" : opt</br>                    int "render_group_id"<0-*> : opt</br>                    array "cubes" : opt // This is the list of cubes associated with this bone.</br>                    {</br>                        object "<any array element>" : opt</br>                        {</br>                            array "origin"[3] : opt</br>                            {</br>                                float "<any array element>" // This point declares the unrotated lower corner of cube (smallest x/y/z value in model space units).</br>                            }</br>                            array "size"[3] : opt</br>                            {</br>                                float "<any array element>" // The cube extends this amount relative to its origin (in model space units).</br>                            }</br>                            array "rotation"[3] : opt</br>                            {</br>                                float "<any array element>" // The cube is rotated by this amount (in degrees, x-then-y-then-z order) around the pivot.</br>                            }</br>                            array "pivot"[3] : opt</br>                            {</br>                                float "<any array element>" // If this field is specified, rotation of this cube occurs around this point, otherwise its rotation is around the center of the box.  Note that in 1.12 this is flipped upside-down, but is fixed in 1.14.</br>                            }</br>                            float "inflate" : opt // Grow this box by this additive amount in all directions (in model space units), this field overrides the bone's inflate field for this cube only.</br>                            bool "mirror" : opt // Mirrors this cube about the unrotated x axis (effectively flipping the east / west faces), overriding the bone's 'mirror' setting for this cube.</br>                            array "uv"[2] : opt</br>                            {</br>                                float "<any array element>" // Specifies the upper-left corner on the texture for the start of the texture mapping for this box.</br>                            }</br>                            object "uv" : opt // This is an alternate per-face uv mapping which specifies each face of the cube.  Omitting a face will cause that face to not get drawn.</br>                            {</br>                                object "north" : opt // Specifies the UV's for the face that stretches along the x and y axes, and faces the -z axis.</br>                                {</br>                                    array "uv"[2]</br>                                    {</br>                                        float "<any array element>" // Specifies the uv origin for the face. For this face, it is the upper-left corner, when looking at the face with y being up.</br>                                    }</br>                                    array "uv_size"[2] : opt</br>                                    {</br>                                        float "<any array element>" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead.</br>                                    }</br>                                    string "material_instance" : opt</br>                                }</br>                                object "south" : opt // Specifies the UV's for the face that stretches along the x and y axes, and faces the z axis</br>                                {</br>                                    array "uv"[2]</br>                                    {</br>                                        float "<any array element>" // Specifies the uv origin for the face. For this face, it is the upper-left corner, when looking at the face with y being up.</br>                                    }</br>                                    array "uv_size"[2] : opt</br>                                    {</br>                                        float "<any array element>" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead.</br>                                    }</br>                                    string "material_instance" : opt</br>                                }</br>                                object "east" : opt // Specifies the UV's for the face that stretches along the z and y axes, and faces the x axis</br>                                {</br>                                    array "uv"[2]</br>                                    {</br>                                        float "<any array element>" // Specifies the uv origin for the face. For this face, it is the upper-left corner, when looking at the face with y being up.</br>                                    }</br>                                    array "uv_size"[2] : opt</br>                                    {</br>                                        float "<any array element>" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead.</br>                                    }</br>                                    string "material_instance" : opt</br>                                }</br>                                object "west" : opt // Specifies the UV's for the face that stretches along the z and y axes, and faces the -x axis</br>                                {</br>                                    array "uv"[2]</br>                                    {</br>                                        float "<any array element>" // Specifies the uv origin for the face. For this face, it is the upper-left corner, when looking at the face with y being up.</br>                                    }</br>                                    array "uv_size"[2] : opt</br>                                    {</br>                                        float "<any array element>" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead.</br>                                    }</br>                                    string "material_instance" : opt</br>                                }</br>                                object "up" : opt // Specifies the UV's for the face that stretches along the x and z axes, and faces the y axis</br>                                {</br>                                    array "uv"[2]</br>                                    {</br>                                        float "<any array element>" // Specifies the uv origin for the face. For this face, it is the back-upper-left corner, assuming you're facing 'north' relative to the cube.</br>                                    }</br>                                    array "uv_size"[2] : opt</br>                                    {</br>                                        float "<any array element>" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead.</br>                                    }</br>                                    string "material_instance" : opt</br>                                }</br>                                object "down" : opt // Specifies the UV's for the face that stretches along the x and z axes, and faces the -y axis</br>                                {</br>                                    array "uv"[2]</br>                                    {</br>                                        float "<any array element>" // Specifies the uv origin for the face. For this face, it is the back-down-right corner, assuming you're facing 'north' relative to the cube.</br>                                    }</br>                                    array "uv_size"[2] : opt</br>                                    {</br>                                        float "<any array element>" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead.</br>                                    }</br>                                    string "material_instance" : opt</br>                                }</br>                            }</br>                        }</br>                    }</br>                    object "locators" : opt</br>                    {</br>                        array "<identifier>" : opt // This is a list of locators associated with this bone.  A locator is a point in model space that tracks a particular bone as the bone animates (by maintaining it's relationship to the bone through the animation).</br>                        {</br>                            float "<any array element>" : opt // Position of the locator in model space.</br>                        }</br>                        object "<identifier>" : opt // This is a list of locators associated with this bone.  A locator is a point in model space that tracks a particular bone as the bone animates (by maintaining it's relationship to the bone through the animation).</br>                        {</br>                            array "offset"</br>                            {</br>                                float "<any array element>" : opt // Position of the locator in model space.</br>                            }</br>                            array "rotation"</br>                            {</br>                                float "<any array element>" : opt // Rotation of the locator in model space.</br>                            }</br>                            bool "ignore_inherited_scale" : opt // Discard scale inherited from parent bone.</br>                        }</br>                    }</br>                    object "poly_mesh" : opt // ***EXPERIMENTAL*** A triangle or quad mesh object.  Can be used in conjunction with cubes and texture geometry.</br>                    {</br>                        bool "normalized_uvs" : opt // If true, UVs are assumed to be [0-1].  If false, UVs are assumed to be [0-texture_width] and [0-texture_height] respectively.</br>                        array "positions" : opt</br>                        {</br>                            array "<any array element>"[3] : opt</br>                            {</br>                                float "<any array element>" // Vertex positions for the mesh.  Can be either indexed via the "polys" section, or be a quad-list if mapped 1-to-1 to the normals and UVs sections.</br>                            }</br>                        }</br>                        array "normals" : opt</br>                        {</br>                            array "<any array element>"[3] : opt</br>                            {</br>                                float "<any array element>" // Vertex normals.  Can be either indexed via the "polys" section, or be a quad-list if mapped 1-to-1 to the positions and UVs sections.</br>                            }</br>                        }</br>                        array "uvs" : opt</br>                        {</br>                            array "<any array element>"[2] : opt</br>                            {</br>                                float "<any array element>" // Vertex UVs.  Can be either indexed via the "polys" section, or be a quad-list if mapped 1-to-1 to the positions and normals sections.</br>                            }</br>                        }</br>                        array "polys"</br>                        {</br>                            array "<any array element>"[3,4] : opt</br>                            {</br>                                array "<any array element>"[3]</br>                                {</br>                                    float "<any array element>" // Poly element indices, as an array of polygons, each an array of either three or four vertices, each an array of indices into positions, normals, and UVs (in that order).</br>                                }</br>                            }</br>                        }</br>                        string "polys"<"tri_list", "quad_list"> // If not specifying vertex indices, arrays of data must be a list of tris or quads, set by making this property either "tri_list" or "quad_list"</br>                    }</br>                    array "texture_meshes" : opt // ***EXPERIMENTAL*** Adds a mesh to the bone's geometry by converting texels in a texture into boxes</br>                    {</br>                        object "<any array element>"</br>                        {</br>                            string "texture" // The friendly-named texture to use.</br>                            array "position"[3] : opt</br>                            {</br>                                float "<any array element>" // The position of the pivot point after rotation (in *entity space* not texture or bone space) of the texture geometry</br>                            }</br>                            array "local_pivot"[3] : opt</br>                            {</br>                                float "<any array element>" // The pivot point on the texture (in *texture space* not entity or bone space) of the texture geometry</br>                            }</br>                            array "rotation"[3] : opt</br>                            {</br>                                float "<any array element>" // The rotation (in degrees) of the texture geometry relative to the offset</br>                            }</br>                            array "scale"[3] : opt</br>                            {</br>                                float "<any array element>" // The scale (in degrees) of the texture geometry relative to the offset</br>                            }</br>                        }</br>                    }</br>                }</br>            }</br>        }</br>    }</br>}</br></br>----------</br>geometry:1.14.0:{</br>    version "format_version"</br>    bool "debug" : opt</br>    array "minecraft:geometry"[1,*]</br>    {</br>        object "<any array element>"</br>        {</br>            object "description"</br>            {</br>                string "identifier" // Entity definition and Client Block definition files refer to this geometry via this identifier.</br>                float "visible_bounds_width" : opt // Width of the visibility bounding box (in model space units).</br>                float "visible_bounds_height" : opt // Height of the visible bounding box (in model space units).</br>                array "visible_bounds_offset"[3] : opt</br>                {</br>                    float "<any array element>" // Offset of the visibility bounding box from the entity location point (in model space units).</br>                }</br>                int "texture_width" : opt // Assumed width in texels of the texture that will be bound to this geometry.</br>                int "texture_height" : opt // Assumed height in texels of the texture that will be bound to this geometry.</br>            }</br>            string "cape" : opt</br>            array "bones" : opt // Bones define the 'skeleton' of the mob: the parts that can be animated, and to which geometry and other bones are attached.</br>            {</br>                object "<any array element>" : opt</br>                {</br>                    string "name" // Animation files refer to this bone via this identifier.</br>                    string "parent" : opt // Bone that this bone is relative to.  If the parent bone moves, this bone will move along with it.</br>                    array "pivot"[3] : opt</br>                    {</br>                        float "<any array element>" // The bone pivots around this point (in model space units).</br>                    }</br>                    array "rotation"[3] : opt</br>                    {</br>                        float "<any array element>" // This is the initial rotation of the bone around the pivot, pre-animation (in degrees, x-then-y-then-z order).</br>                    }</br>                    bool "mirror" : opt // Mirrors the UV's of the unrotated cubes along the x axis, also causes the east/west faces to get flipped.</br>                    float "inflate" : opt // Grow this box by this additive amount in all directions (in model space units).</br>                    bool "debug" : opt</br>                    int "render_group_id"<0-*> : opt</br>                    array "cubes" : opt // This is the list of cubes associated with this bone.</br>                    {</br>                        object "<any array element>" : opt</br>                        {</br>                            array "origin"[3] : opt</br>                            {</br>                                float "<any array element>" // This point declares the unrotated lower corner of cube (smallest x/y/z value in model space units).</br>                            }</br>                            array "size"[3] : opt</br>                            {</br>                                float "<any array element>" // The cube extends this amount relative to its origin (in model space units).</br>                            }</br>                            array "rotation"[3] : opt</br>                            {</br>                                float "<any array element>" // The cube is rotated by this amount (in degrees, x-then-y-then-z order) around the pivot.</br>                            }</br>                            array "pivot"[3] : opt</br>                            {</br>                                float "<any array element>" // If this field is specified, rotation of this cube occurs around this point, otherwise its rotation is around the center of the box.</br>                            }</br>                            float "inflate" : opt // Grow this box by this additive amount in all directions (in model space units), this field overrides the bone's inflate field for this cube only.</br>                            bool "mirror" : opt // Mirrors this cube about the unrotated x axis (effectively flipping the east / west faces), overriding the bone's 'mirror' setting for this cube.</br>                            array "uv"[2] : opt</br>                            {</br>                                float "<any array element>" // Specifies the upper-left corner on the texture for the start of the texture mapping for this box.</br>                            }</br>                            object "uv" : opt // This is an alternate per-face uv mapping which specifies each face of the cube.  Omitting a face will cause that face to not get drawn.</br>                            {</br>                                object "north" : opt // Specifies the UV's for the face that stretches along the x and y axes, and faces the -z axis.</br>                                {</br>                                    array "uv"[2]</br>                                    {</br>                                        float "<any array element>" // Specifies the uv origin for the face. For this face, it is the upper-left corner, when looking at the face with y being up.</br>                                    }</br>                                    array "uv_size"[2] : opt</br>                                    {</br>                                        float "<any array element>" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead.</br>                                    }</br>                                    string "material_instance" : opt</br>                                }</br>                                object "south" : opt // Specifies the UV's for the face that stretches along the x and y axes, and faces the z axis</br>                                {</br>                                    array "uv"[2]</br>                                    {</br>                                        float "<any array element>" // Specifies the uv origin for the face. For this face, it is the upper-left corner, when looking at the face with y being up.</br>                                    }</br>                                    array "uv_size"[2] : opt</br>                                    {</br>                                        float "<any array element>" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead.</br>                                    }</br>                                    string "material_instance" : opt</br>                                }</br>                                object "east" : opt // Specifies the UV's for the face that stretches along the z and y axes, and faces the x axis</br>                                {</br>                                    array "uv"[2]</br>                                    {</br>                                        float "<any array element>" // Specifies the uv origin for the face. For this face, it is the upper-left corner, when looking at the face with y being up.</br>                                    }</br>                                    array "uv_size"[2] : opt</br>                                    {</br>                                        float "<any array element>" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead.</br>                                    }</br>                                    string "material_instance" : opt</br>                                }</br>                                object "west" : opt // Specifies the UV's for the face that stretches along the z and y axes, and faces the -x axis</br>                                {</br>                                    array "uv"[2]</br>                                    {</br>                                        float "<any array element>" // Specifies the uv origin for the face. For this face, it is the upper-left corner, when looking at the face with y being up.</br>                                    }</br>                                    array "uv_size"[2] : opt</br>                                    {</br>                                        float "<any array element>" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead.</br>                                    }</br>                                    string "material_instance" : opt</br>                                }</br>                                object "up" : opt // Specifies the UV's for the face that stretches along the x and z axes, and faces the y axis</br>                                {</br>                                    array "uv"[2]</br>                                    {</br>                                        float "<any array element>" // Specifies the uv origin for the face. For this face, it is the back-upper-left corner, assuming you're facing 'north' relative to the cube.</br>                                    }</br>                                    array "uv_size"[2] : opt</br>                                    {</br>                                        float "<any array element>" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead.</br>                                    }</br>                                    string "material_instance" : opt</br>                                }</br>                                object "down" : opt // Specifies the UV's for the face that stretches along the x and z axes, and faces the -y axis</br>                                {</br>                                    array "uv"[2]</br>                                    {</br>                                        float "<any array element>" // Specifies the uv origin for the face. For this face, it is the back-down-right corner, assuming you're facing 'north' relative to the cube.</br>                                    }</br>                                    array "uv_size"[2] : opt</br>                                    {</br>                                        float "<any array element>" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead.</br>                                    }</br>                                    string "material_instance" : opt</br>                                }</br>                            }</br>                        }</br>                    }</br>                    object "locators" : opt</br>                    {</br>                        array "<identifier>" : opt // This is a list of locators associated with this bone.  A locator is a point in model space that tracks a particular bone as the bone animates (by maintaining it's relationship to the bone through the animation).</br>                        {</br>                            float "<any array element>" : opt // Position of the locator in model space.</br>                        }</br>                        object "<identifier>" : opt // This is a list of locators associated with this bone.  A locator is a point in model space that tracks a particular bone as the bone animates (by maintaining it's relationship to the bone through the animation).</br>                        {</br>                            array "offset"</br>                            {</br>                                float "<any array element>" : opt // Position of the locator in model space.</br>                            }</br>                            array "rotation"</br>                            {</br>                                float "<any array element>" : opt // Rotation of the locator in model space.</br>                            }</br>                            bool "ignore_inherited_scale" : opt // Discard scale inherited from parent bone.</br>                        }</br>                    }</br>                    object "poly_mesh" : opt // ***EXPERIMENTAL*** A triangle or quad mesh object.  Can be used in conjunction with cubes and texture geometry.</br>                    {</br>                        bool "normalized_uvs" : opt // If true, UVs are assumed to be [0-1].  If false, UVs are assumed to be [0-texture_width] and [0-texture_height] respectively.</br>                        array "positions" : opt</br>                        {</br>                            array "<any array element>"[3] : opt</br>                            {</br>                                float "<any array element>" // Vertex positions for the mesh.  Can be either indexed via the "polys" section, or be a quad-list if mapped 1-to-1 to the normals and UVs sections.</br>                            }</br>                        }</br>                        array "normals" : opt</br>                        {</br>                            array "<any array element>"[3] : opt</br>                            {</br>                                float "<any array element>" // Vertex normals.  Can be either indexed via the "polys" section, or be a quad-list if mapped 1-to-1 to the positions and UVs sections.</br>                            }</br>                        }</br>                        array "uvs" : opt</br>                        {</br>                            array "<any array element>"[2] : opt</br>                            {</br>                                float "<any array element>" // Vertex UVs.  Can be either indexed via the "polys" section, or be a quad-list if mapped 1-to-1 to the positions and normals sections.</br>                            }</br>                        }</br>                        array "polys"</br>                        {</br>                            array "<any array element>"[3,4] : opt</br>                            {</br>                                array "<any array element>"[3]</br>                                {</br>                                    float "<any array element>" // Poly element indices, as an array of polygons, each an array of either three or four vertices, each an array of indices into positions, normals, and UVs (in that order).</br>                                }</br>                            }</br>                        }</br>                        string "polys"<"tri_list", "quad_list"> // If not specifying vertex indices, arrays of data must be a list of tris or quads, set by making this property either "tri_list" or "quad_list"</br>                    }</br>                    array "texture_meshes" : opt // ***EXPERIMENTAL*** Adds a mesh to the bone's geometry by converting texels in a texture into boxes</br>                    {</br>                        object "<any array element>"</br>                        {</br>                            string "texture" // The friendly-named texture to use.</br>                            array "position"[3] : opt</br>                            {</br>                                float "<any array element>" // The position of the pivot point after rotation (in *entity space* not texture or bone space) of the texture geometry</br>                            }</br>                            array "local_pivot"[3] : opt</br>                            {</br>                                float "<any array element>" // The pivot point on the texture (in *texture space* not entity or bone space) of the texture geometry</br>                            }</br>                            array "rotation"[3] : opt</br>                            {</br>                                float "<any array element>" // The rotation (in degrees) of the texture geometry relative to the offset</br>                            }</br>                            array "scale"[3] : opt</br>                            {</br>                                float "<any array element>" // The scale (in degrees) of the texture geometry relative to the offset</br>                            }</br>                        }</br>                    }</br>                }</br>            }</br>        }</br>    }</br>}</br></br>----------</br>geometry:1.16.0:{</br>    version "format_version"</br>    bool "debug" : opt</br>    array "minecraft:geometry"[1,*]</br>    {</br>        object "<any array element>"</br>        {</br>            object "description"</br>            {</br>                string "identifier" // Entity definition and Client Block definition files refer to this geometry via this identifier.</br>                float "visible_bounds_width" : opt // Width of the visibility bounding box (in model space units).</br>                float "visible_bounds_height" : opt // Height of the visible bounding box (in model space units).</br>                array "visible_bounds_offset"[3] : opt</br>                {</br>                    float "<any array element>" // Offset of the visibility bounding box from the entity location point (in model space units).</br>                }</br>                int "texture_width" : opt // Assumed width in texels of the texture that will be bound to this geometry.</br>                int "texture_height" : opt // Assumed height in texels of the texture that will be bound to this geometry.</br>            }</br>            string "cape" : opt</br>            array "bones" : opt // Bones define the 'skeleton' of the mob: the parts that can be animated, and to which geometry and other bones are attached.</br>            {</br>                object "<any array element>" : opt</br>                {</br>                    string "name" // Animation files refer to this bone via this identifier.</br>                    string "parent" : opt // Bone that this bone is relative to.  If the parent bone moves, this bone will move along with it.</br>                    array "pivot"[3] : opt</br>                    {</br>                        float "<any array element>" // The bone pivots around this point (in model space units).</br>                    }</br>                    array "rotation"[3] : opt</br>                    {</br>                        float "<any array element>" // This is the initial rotation of the bone around the pivot, pre-animation (in degrees, x-then-y-then-z order).</br>                    }</br>                    bool "mirror" : opt // Mirrors the UV's of the unrotated cubes along the x axis, also causes the east/west faces to get flipped.</br>                    float "inflate" : opt // Grow this box by this additive amount in all directions (in model space units).</br>                    bool "debug" : opt</br>                    int "render_group_id"<0-*> : opt</br>                    array "cubes" : opt // This is the list of cubes associated with this bone.</br>                    {</br>                        object "<any array element>" : opt</br>                        {</br>                            array "origin"[3] : opt</br>                            {</br>                                float "<any array element>" // This point declares the unrotated lower corner of cube (smallest x/y/z value in model space units).</br>                            }</br>                            array "size"[3] : opt</br>                            {</br>                                float "<any array element>" // The cube extends this amount relative to its origin (in model space units).</br>                            }</br>                            array "rotation"[3] : opt</br>                            {</br>                                float "<any array element>" // The cube is rotated by this amount (in degrees, x-then-y-then-z order) around the pivot.</br>                            }</br>                            array "pivot"[3] : opt</br>                            {</br>                                float "<any array element>" // If this field is specified, rotation of this cube occurs around this point, otherwise its rotation is around the center of the box.</br>                            }</br>                            float "inflate" : opt // Grow this box by this additive amount in all directions (in model space units), this field overrides the bone's inflate field for this cube only.</br>                            bool "mirror" : opt // Mirrors this cube about the unrotated x axis (effectively flipping the east / west faces), overriding the bone's 'mirror' setting for this cube.</br>                            array "uv"[2] : opt</br>                            {</br>                                float "<any array element>" // Specifies the upper-left corner on the texture for the start of the texture mapping for this box.</br>                            }</br>                            object "uv" : opt // This is an alternate per-face uv mapping which specifies each face of the cube.  Omitting a face will cause that face to not get drawn.</br>                            {</br>                                object "north" : opt // Specifies the UV's for the face that stretches along the x and y axes, and faces the -z axis.</br>                                {</br>                                    array "uv"[2]</br>                                    {</br>                                        float "<any array element>" // Specifies the uv origin for the face. For this face, it is the upper-left corner, when looking at the face with y being up.</br>                                    }</br>                                    array "uv_size"[2] : opt</br>                                    {</br>                                        float "<any array element>" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead.</br>                                    }</br>                                    string "material_instance" : opt</br>                                }</br>                                object "south" : opt // Specifies the UV's for the face that stretches along the x and y axes, and faces the z axis</br>                                {</br>                                    array "uv"[2]</br>                                    {</br>                                        float "<any array element>" // Specifies the uv origin for the face. For this face, it is the upper-left corner, when looking at the face with y being up.</br>                                    }</br>                                    array "uv_size"[2] : opt</br>                                    {</br>                                        float "<any array element>" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead.</br>                                    }</br>                                    string "material_instance" : opt</br>                                }</br>                                object "east" : opt // Specifies the UV's for the face that stretches along the z and y axes, and faces the x axis</br>                                {</br>                                    array "uv"[2]</br>                                    {</br>                                        float "<any array element>" // Specifies the uv origin for the face. For this face, it is the upper-left corner, when looking at the face with y being up.</br>                                    }</br>                                    array "uv_size"[2] : opt</br>                                    {</br>                                        float "<any array element>" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead.</br>                                    }</br>                                    string "material_instance" : opt</br>                                }</br>                                object "west" : opt // Specifies the UV's for the face that stretches along the z and y axes, and faces the -x axis</br>                                {</br>                                    array "uv"[2]</br>                                    {</br>                                        float "<any array element>" // Specifies the uv origin for the face. For this face, it is the upper-left corner, when looking at the face with y being up.</br>                                    }</br>                                    array "uv_size"[2] : opt</br>                                    {</br>                                        float "<any array element>" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead.</br>                                    }</br>                                    string "material_instance" : opt</br>                                }</br>                                object "up" : opt // Specifies the UV's for the face that stretches along the x and z axes, and faces the y axis</br>                                {</br>                                    array "uv"[2]</br>                                    {</br>                                        float "<any array element>" // Specifies the uv origin for the face. For this face, it is the back-upper-left corner, assuming you're facing 'north' relative to the cube.</br>                                    }</br>                                    array "uv_size"[2] : opt</br>                                    {</br>                                        float "<any array element>" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead.</br>                                    }</br>                                    string "material_instance" : opt</br>                                }</br>                                object "down" : opt // Specifies the UV's for the face that stretches along the x and z axes, and faces the -y axis</br>                                {</br>                                    array "uv"[2]</br>                                    {</br>                                        float "<any array element>" // Specifies the uv origin for the face. For this face, it is the back-down-right corner, assuming you're facing 'north' relative to the cube.</br>                                    }</br>                                    array "uv_size"[2] : opt</br>                                    {</br>                                        float "<any array element>" // The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead.</br>                                    }</br>                                    string "material_instance" : opt</br>                                }</br>                            }</br>                        }</br>                    }</br>                    molang "binding" : opt // useful for items.  A molang expression specifying the bone name of the parent skeletal hierarchy that this bone should use as the root transform.  Without this field it will look for a bone in the parent entity with the same name as this bone.  If both are missing, it will assume a local skeletal hierarchy (via the "parent" field).  If that is also missing, it will attach to the owning entity's root transform.</br>                    object "locators" : opt</br>                    {</br>                        array "<identifier>" : opt // This is a list of locators associated with this bone.  A locator is a point in model space that tracks a particular bone as the bone animates (by maintaining it's relationship to the bone through the animation).</br>                        {</br>                            float "<any array element>" : opt // Position of the locator in model space.</br>                        }</br>                        object "<identifier>" : opt // This is a list of locators associated with this bone.  A locator is a point in model space that tracks a particular bone as the bone animates (by maintaining it's relationship to the bone through the animation).</br>                        {</br>                            array "offset"</br>                            {</br>                                float "<any array element>" : opt // Position of the locator in model space.</br>                            }</br>                            array "rotation"</br>                            {</br>                                float "<any array element>" : opt // Rotation of the locator in model space.</br>                            }</br>                            bool "ignore_inherited_scale" : opt // Discard scale inherited from parent bone.</br>                        }</br>                    }</br>                    object "poly_mesh" : opt // ***EXPERIMENTAL*** A triangle or quad mesh object.  Can be used in conjunction with cubes and texture geometry.</br>                    {</br>                        bool "normalized_uvs" : opt // If true, UVs are assumed to be [0-1].  If false, UVs are assumed to be [0-texture_width] and [0-texture_height] respectively.</br>                        array "positions" : opt</br>                        {</br>                            array "<any array element>"[3] : opt</br>                            {</br>                                float "<any array element>" // Vertex positions for the mesh.  Can be either indexed via the "polys" section, or be a quad-list if mapped 1-to-1 to the normals and UVs sections.</br>                            }</br>                        }</br>                        array "normals" : opt</br>                        {</br>                            array "<any array element>"[3] : opt</br>                            {</br>                                float "<any array element>" // Vertex normals.  Can be either indexed via the "polys" section, or be a quad-list if mapped 1-to-1 to the positions and UVs sections.</br>                            }</br>                        }</br>                        array "uvs" : opt</br>                        {</br>                            array "<any array element>"[2] : opt</br>                            {</br>                                float "<any array element>" // Vertex UVs.  Can be either indexed via the "polys" section, or be a quad-list if mapped 1-to-1 to the positions and normals sections.</br>                            }</br>                        }</br>                        array "polys"</br>                        {</br>                            array "<any array element>"[3,4] : opt</br>                            {</br>                                array "<any array element>"[3]</br>                                {</br>                                    float "<any array element>" // Poly element indices, as an array of polygons, each an array of either three or four vertices, each an array of indices into positions, normals, and UVs (in that order).</br>                                }</br>                            }</br>                        }</br>                        string "polys"<"tri_list", "quad_list"> // If not specifying vertex indices, arrays of data must be a list of tris or quads, set by making this property either "tri_list" or "quad_list"</br>                    }</br>                    array "texture_meshes" : opt // ***EXPERIMENTAL*** Adds a mesh to the bone's geometry by converting texels in a texture into boxes</br>                    {</br>                        object "<any array element>"</br>                        {</br>                            string "texture" // The friendly-named texture to use.</br>                            array "position"[3] : opt</br>                            {</br>                                float "<any array element>" // The position of the pivot point after rotation (in *entity space* not texture or bone space) of the texture geometry</br>                            }</br>                            array "local_pivot"[3] : opt</br>                            {</br>                                float "<any array element>" // The pivot point on the texture (in *texture space* not entity or bone space) of the texture geometry</br>                            }</br>                            array "rotation"[3] : opt</br>                            {</br>                                float "<any array element>" // The rotation (in degrees) of the texture geometry relative to the offset</br>                            }</br>                            array "scale"[3] : opt</br>                            {</br>                                float "<any array element>" // The scale (in degrees) of the texture geometry relative to the offset</br>                            }</br>                        }</br>                    }</br>                }</br>            }</br>        }</br>    }</br>}</br></br>----------</br>```</br><a href="#Index">返回顶部</a><br><br>

